#pragma once

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

void Swap(int* a, int* b);


void PrintArr(int* a, int n);
void InsertSort(int* a, int n);

void ShellSort(int* a, int n);
void SelectSort(int* a, int n);


void AdjustUp(int* a, int child);
void AdjustDown(int* a, int n, int parent);
void HeapSort(int* a, int n);

void BubbleSort(int* a, int n);

int GetMidNumi(int* a, int left, int right);

void QuickSort(int* a, int left, int right);

void _MergeSort(int* a, int begin, int end, int* tmp);
void MergeSort(int* a, int n);
